{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 1.筛选"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/markdown": [
       "**[PDF 315/315]** `2010073500_FG_004.pdf`  \n",
       "**[Page 4/7]**  该 PDF 的 **has_issue=True** 子图总数：**1**  \n",
       "操作：`Enter`=下一页 ｜ `w`=标记当前PDF有误并跳过 ｜ `e`=标记该页并保存 ｜ `q`=退出"
      ],
      "text/plain": [
       "<IPython.core.display.Markdown object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/markdown": [
       "**本页 has_issue panels数：1**"
      ],
      "text/plain": [
       "<IPython.core.display.Markdown object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/jpeg": "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",
      "image/png": "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",
      "text/plain": [
       "<PIL.Image.Image image mode=RGB size=305x221>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "完成。\n",
      "有误 PDF 记录文件: /home/zhangbo/workspace/aigc/genome/dataset/scripts/generate_aigc/bad_aigc_20250904_104842.jsonl（18 条）\n",
      "已标记页面记录文件: /home/zhangbo/workspace/aigc/genome/dataset/scripts/generate_aigc/marked_pages_20250904_104842.jsonl（0 条）\n"
     ]
    }
   ],
   "source": [
    "# -*- coding: utf-8 -*-\n",
    "import os\n",
    "import json\n",
    "import fitz  # PyMuPDF\n",
    "import numpy as np\n",
    "from datetime import datetime\n",
    "from IPython.display import display, clear_output, Markdown\n",
    "from PIL import Image, ImageDraw, ImageFont, ImageOps\n",
    "\n",
    "# =========================\n",
    "# 基础配置（按需修改）\n",
    "# =========================\n",
    "forgery_dir = \"/home/zhangbo/workspace/aigc/genome\"\n",
    "json_path = \"/home/zhangbo/workspace/aigc/genome/dataset/forgery/forgery.json\"  # 合并后的 forgery.json\n",
    "\n",
    "# 渲染与显示\n",
    "render_scale = 1.4          # PDF 真正渲染倍率\n",
    "display_scale_fixed = 0.2   # 左侧页面固定显示缩放比例\n",
    "\n",
    "# 右侧 panel 显示相关\n",
    "panel_display_scale = 0.2     # 子图缩放比例\n",
    "panel_max_width = 100         # 子图缩放后最大宽度\n",
    "panel_v_gap = 10              # 子图之间的竖向间距\n",
    "panel_padding = 6             # 子图内边距\n",
    "panel_border_px = 3           # 子图边框粗细\n",
    "panel_border_color = (255, 0, 0)  # 子图边框颜色（红色）\n",
    "right_col_bg = (255, 255, 255)    # 右列背景\n",
    "\n",
    "# 交互 / 输出\n",
    "AUTO_NEXT = False             # True: 不停顿自动下一页；False: 每页等待输入\n",
    "SAVE_COMPOSITE = False        # True: 将拼接图保存到文件\n",
    "preview_root = os.path.join(forgery_dir, \"_preview\")  # 保存拼图的根目录\n",
    "\n",
    "timestamp = datetime.now().strftime(\"%Y%m%d_%H%M%S\")\n",
    "root_dir = \"/home/zhangbo/workspace/aigc/genome/dataset/scripts/generate_aigc\"\n",
    "bad_list_path = os.path.join(root_dir, f\"bad_aigc_{timestamp}.jsonl\")\n",
    "marked_pages_path = os.path.join(root_dir, f\"marked_pages_{timestamp}.jsonl\")  # 用于保存按 e 标记的页面\n",
    "\n",
    "# =========================\n",
    "# 帮助函数\n",
    "# =========================\n",
    "def list_target_pdfs(base_dir):\n",
    "    \"\"\"只枚举 *_FG_*.pdf 的伪造 PDF（限定在 forgery_pdf 目录，效率更高）\"\"\"\n",
    "    pdf_root = os.path.join(base_dir, \"dataset/forgery/forgery_pdf\")\n",
    "    targets = []\n",
    "    for root, _, files in os.walk(pdf_root):\n",
    "        for f in files:\n",
    "            if f.endswith(\".pdf\") and \"_FG_\" in f:\n",
    "                targets.append(os.path.join(root, f))\n",
    "    targets.sort()\n",
    "    return targets\n",
    "\n",
    "def build_forgery_map_with_issue_panels(json_path):\n",
    "    \"\"\"\n",
    "    构建：\n",
    "      pages_map:        { '<paper_id[_FG_*]>.pdf': set(page_idx0, ...) }\n",
    "      panels_map:       { '<paper_id[_FG_*]>.pdf': { page_idx0: [abs_panel_path, ...] } }\n",
    "      pdf_issue_counts: { '<paper_id[_FG_*]>.pdf': total_issue_count }  # has_issue=True 的子图总数\n",
    "    \"\"\"\n",
    "    pages_map, panels_map, pdf_issue_counts = {}, {}, {}\n",
    "    if not os.path.exists(json_path):\n",
    "        print(f\"未找到 JSON：{json_path}，将不做页过滤。\")\n",
    "        return pages_map, panels_map, pdf_issue_counts\n",
    "\n",
    "    with open(json_path, \"r\", encoding=\"utf-8\") as f:\n",
    "        data = json.load(f)\n",
    "\n",
    "    papers = data.get(\"papers\") if isinstance(data, dict) else (data if isinstance(data, list) else [])\n",
    "    if not isinstance(papers, list):\n",
    "        print(\"JSON 顶层结构异常：未找到 papers 列表。\")\n",
    "        return pages_map, panels_map, pdf_issue_counts\n",
    "\n",
    "    json_root = os.path.dirname(json_path)\n",
    "\n",
    "    def _norm(p):\n",
    "        \"\"\"panel 相对路径 -> 绝对路径；按 forgery_dir / json_root / cwd 依次查找\"\"\"\n",
    "        if not p:\n",
    "            return None\n",
    "        if os.path.isabs(p):\n",
    "            return p\n",
    "        for base in [forgery_dir, json_root, os.getcwd()]:\n",
    "            cand = os.path.abspath(os.path.join(base, p))\n",
    "            if os.path.exists(cand):\n",
    "                return cand\n",
    "        return os.path.abspath(os.path.join(forgery_dir, p))\n",
    "\n",
    "    for paper in papers:\n",
    "        if not isinstance(paper, dict):\n",
    "            continue\n",
    "\n",
    "        paper_id = paper.get(\"paper_id\")\n",
    "        if not paper_id:\n",
    "            continue\n",
    "\n",
    "        # 稳健构造 PDF 文件名\n",
    "        pid = str(paper_id)\n",
    "        if pid.endswith(\".pdf\"):\n",
    "            pdf_name = os.path.basename(pid)\n",
    "        elif \"_FG_\" in pid:\n",
    "            pdf_name = f\"{pid}.pdf\"\n",
    "        else:\n",
    "            pdf_name = f\"{pid}_FG_004.pdf\"\n",
    "\n",
    "        total_issue_count = 0\n",
    "\n",
    "        page_list = paper.get(\"pages\") or []\n",
    "        for p in page_list:\n",
    "            try:\n",
    "                idx1 = int(p.get(\"page_index\", 0))\n",
    "            except Exception:\n",
    "                continue\n",
    "            if idx1 < 1:\n",
    "                continue\n",
    "            idx0 = idx1 - 1  # 0-based\n",
    "\n",
    "            issue_panels_abs = []\n",
    "            for fig in (p.get(\"figures\") or []):\n",
    "                for pnl in (fig.get(\"panels\") or []):\n",
    "                    panel_issues = pnl.get(\"panel_level_issues\", {})\n",
    "                    if panel_issues.get(\"has_issue\", False):\n",
    "                        absp = _norm(pnl.get(\"path\"))\n",
    "                        if absp:\n",
    "                            issue_panels_abs.append(absp)\n",
    "\n",
    "            uniq, seen, missing = [], set(), []\n",
    "            for x in issue_panels_abs:\n",
    "                xp = os.path.abspath(x)\n",
    "                if xp in seen:\n",
    "                    continue\n",
    "                seen.add(xp)\n",
    "                if os.path.exists(xp):\n",
    "                    uniq.append(xp)\n",
    "                else:\n",
    "                    missing.append(xp)\n",
    "            if uniq:\n",
    "                pages_map.setdefault(pdf_name, set()).add(idx0)\n",
    "                panels_map.setdefault(pdf_name, {}).setdefault(idx0, []).extend(uniq)\n",
    "                total_issue_count += len(uniq)\n",
    "\n",
    "        if total_issue_count > 0:\n",
    "            pdf_issue_counts[pdf_name] = total_issue_count\n",
    "\n",
    "    return pages_map, panels_map, pdf_issue_counts\n",
    "\n",
    "def page_to_rgb_array(page, scale=1.4):\n",
    "    \"\"\"将 PDF 页渲染为 RGB numpy 数组；自动降级比例以提高成功率\"\"\"\n",
    "    for s in (scale, 1.2, 1.0, 0.8):\n",
    "        try:\n",
    "            mat = fitz.Matrix(s, s)\n",
    "            pix = page.get_pixmap(matrix=mat, alpha=False)\n",
    "            arr = np.frombuffer(pix.samples, dtype=np.uint8).reshape(pix.h, pix.w, 3)\n",
    "            return arr\n",
    "        except Exception:\n",
    "            continue\n",
    "    raise RuntimeError(\"渲染失败：内存不足或页面异常\")\n",
    "\n",
    "def resize_pil(img_pil, target_w=None, scale=None, keep_max_w=None):\n",
    "    \"\"\"按比例或目标宽缩放 PIL 图像\"\"\"\n",
    "    w, h = img_pil.width, img_pil.height\n",
    "    if scale is not None:\n",
    "        new_w = max(1, int(w * scale))\n",
    "        new_h = max(1, int(h * scale))\n",
    "        img_pil = img_pil.resize((new_w, new_h), Image.LANCZOS)\n",
    "    if target_w is not None and target_w > 0:\n",
    "        if img_pil.width != target_w:\n",
    "            scale2 = target_w / img_pil.width\n",
    "            new_w = target_w\n",
    "            new_h = max(1, int(img_pil.height * scale2))\n",
    "            img_pil = img_pil.resize((new_w, new_h), Image.LANCZOS)\n",
    "    if keep_max_w is not None and img_pil.width > keep_max_w:\n",
    "        scale3 = keep_max_w / img_pil.width\n",
    "        new_w = keep_max_w\n",
    "        new_h = max(1, int(img_pil.height * scale3))\n",
    "        img_pil = img_pil.resize((new_w, new_h), Image.LANCZOS)\n",
    "    return img_pil\n",
    "\n",
    "def _pick_font():\n",
    "    \"\"\"尽量使用支持中文的字体；找不到就返回 None（PIL 会用默认字体）\"\"\"\n",
    "    for fp in [\n",
    "        \"/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf\",\n",
    "        \"/usr/share/fonts/truetype/wqy/wqy-zenhei.ttc\",\n",
    "        \"/usr/share/fonts/truetype/wqy/wqy-microhei.ttc\",\n",
    "    ]:\n",
    "        if os.path.exists(fp):\n",
    "            try:\n",
    "                return ImageFont.truetype(fp, 16)\n",
    "            except Exception:\n",
    "                pass\n",
    "    return None\n",
    "\n",
    "def _resize_keep_ratio(img_pil: Image.Image, scale=None, max_w=None):\n",
    "    \"\"\"按比例缩放；如果设置了 max_w 则再按宽度收敛一次\"\"\"\n",
    "    if scale is not None:\n",
    "        w = max(1, int(img_pil.width * scale))\n",
    "        h = max(1, int(img_pil.height * scale))\n",
    "        img_pil = img_pil.resize((w, h), Image.LANCZOS)\n",
    "    if max_w is not None and img_pil.width > max_w:\n",
    "        ratio = max_w / img_pil.width\n",
    "        w = max_w\n",
    "        h = max(1, int(img_pil.height * ratio))\n",
    "        img_pil = img_pil.resize((w, h), Image.LANCZOS)\n",
    "    return img_pil\n",
    "\n",
    "def make_right_column_from_paths(panel_paths,\n",
    "                                 col_bg=right_col_bg,\n",
    "                                 v_gap=panel_v_gap):\n",
    "    \"\"\"右侧列拼接（缩放、限宽、内边距、边框；为空给出占位）\"\"\"\n",
    "    font = _pick_font()\n",
    "    valid = [p for p in (panel_paths or []) if p and os.path.exists(p)]\n",
    "\n",
    "    if not valid:\n",
    "        w, h = max(260, int(panel_max_width*0.9)), 160\n",
    "        img = Image.new(\"RGB\", (w, h), color=(240, 240, 240))\n",
    "        draw = ImageDraw.Draw(img)\n",
    "        msg = \"该页没有标记为 has_issue 的子图 (panel)\"\n",
    "        if font:\n",
    "            draw.text((16, 40), msg, fill=(80, 80, 80), font=font)\n",
    "        else:\n",
    "            draw.text((16, 40), msg, fill=(80, 80, 80))\n",
    "        return img\n",
    "\n",
    "    tiles = []\n",
    "    max_w = 0\n",
    "    total_h = 0\n",
    "\n",
    "    for p in valid:\n",
    "        try:\n",
    "            im = Image.open(p).convert(\"RGB\")\n",
    "        except Exception:\n",
    "            continue\n",
    "\n",
    "        im = _resize_keep_ratio(im, scale=panel_display_scale, max_w=panel_max_width)\n",
    "        if panel_padding > 0:\n",
    "            im = ImageOps.expand(im, border=panel_padding, fill=(255, 255, 255))\n",
    "        if panel_border_px > 0:\n",
    "            im = ImageOps.expand(im, border=panel_border_px, fill=panel_border_color)\n",
    "\n",
    "        tiles.append(im)\n",
    "        max_w = max(max_w, im.width)\n",
    "        total_h += im.height\n",
    "\n",
    "    total_h += v_gap * (len(tiles) - 1) if tiles else 0\n",
    "    canvas = Image.new(\"RGB\", (max_w if tiles else 260, total_h if tiles else 160), color=col_bg)\n",
    "    y = 0\n",
    "    for i, im in enumerate(tiles):\n",
    "        canvas.paste(im, (0, y))\n",
    "        y += im.height + (v_gap if i < len(tiles) - 1 else 0)\n",
    "    return canvas\n",
    "\n",
    "def side_by_side(left_img, right_img, gap=16, max_w=None):\n",
    "    \"\"\"左右拼接；可限制最大宽度\"\"\"\n",
    "    h = max(left_img.height, right_img.height)\n",
    "    canvas = Image.new(\"RGB\", (left_img.width + gap + right_img.width, h), color=(255, 255, 255))\n",
    "    canvas.paste(left_img, (0, 0))\n",
    "    canvas.paste(right_img, (left_img.width + gap, 0))\n",
    "    if max_w is not None and canvas.width > max_w:\n",
    "        scale = max_w / canvas.width\n",
    "        new_w = max_w\n",
    "        new_h = max(1, int(canvas.height * scale))\n",
    "        canvas = canvas.resize((new_w, new_h), Image.LANCZOS)\n",
    "    return canvas\n",
    "\n",
    "def make_header_md(pdf_idx, pdf_total, page_i0, page_total, pdf_path, issue_total):\n",
    "    \"\"\"返回一段 Markdown，作为“横幅”在 cell 顶部输出\"\"\"\n",
    "    basename = os.path.basename(pdf_path)\n",
    "    md = (\n",
    "        f\"**[PDF {pdf_idx+1}/{pdf_total}]** `{basename}`  \\n\"\n",
    "        f\"**[Page {page_i0+1}/{page_total}]**  该 PDF 的 **has_issue=True** 子图总数：**{issue_total}**  \\n\"\n",
    "        f\"操作：`Enter`=下一页 ｜ `w`=标记当前PDF有误并跳过 ｜ `e`=标记该页并保存 ｜ `q`=退出\"\n",
    "    )\n",
    "    return md\n",
    "\n",
    "def read_int(prompt, default_val, lo, hi):\n",
    "    s = input(prompt).strip()\n",
    "    if not s:\n",
    "        return default_val\n",
    "    try:\n",
    "        v = int(s)\n",
    "        v = max(lo, min(hi, v))\n",
    "        return v\n",
    "    except Exception:\n",
    "        return default_val\n",
    "\n",
    "# =========================\n",
    "# 主流程\n",
    "# =========================\n",
    "def main():\n",
    "    pdfs = list_target_pdfs(forgery_dir)\n",
    "    if not pdfs:\n",
    "        print(\"未找到任何 _FG_*.pdf 结尾的伪造 PDF。\")\n",
    "        return\n",
    "\n",
    "    pages_map, panels_map, pdf_issue_counts = build_forgery_map_with_issue_panels(json_path)\n",
    "    if not pages_map:\n",
    "        print(\"未启用页过滤（JSON 不存在或未解析出页条目），将展示全部页（右侧可能为空）。\")\n",
    "\n",
    "    print(f\"共找到 {len(pdfs)} 个目标 PDF。\")\n",
    "    start_from = 1 if AUTO_NEXT else read_int(\"从第几个 PDF 开始（1-based，回车默认1）：\", 1, 1, len(pdfs))\n",
    "    print(f\"页面固定显示缩放比例（展示）：{display_scale_fixed}\")\n",
    "\n",
    "    if SAVE_COMPOSITE:\n",
    "        os.makedirs(preview_root, exist_ok=True)\n",
    "\n",
    "    bad_seen = set()\n",
    "    marked_pages_seen = set()\n",
    "\n",
    "    for pdf_idx in range(start_from - 1, len(pdfs)):\n",
    "        pdf_path = pdfs[pdf_idx]\n",
    "        basename = os.path.basename(pdf_path)\n",
    "\n",
    "        if pages_map:\n",
    "            page_idxs0 = sorted([i for i in pages_map.get(basename, set()) if isinstance(i, int)])\n",
    "            if not page_idxs0:\n",
    "                continue\n",
    "        else:\n",
    "            page_idxs0 = None\n",
    "\n",
    "        try:\n",
    "            doc = fitz.open(pdf_path)\n",
    "        except Exception as e:\n",
    "            print(f\"打开失败: {pdf_path}, 错误: {e}\")\n",
    "            continue\n",
    "\n",
    "        page_total = len(doc)\n",
    "        target_pages = ([i for i in page_idxs0 if 0 <= i < page_total]\n",
    "                        if page_idxs0 is not None else list(range(page_total)))\n",
    "        if not target_pages:\n",
    "            doc.close()\n",
    "            continue\n",
    "\n",
    "        issue_total = pdf_issue_counts.get(basename, 0)\n",
    "        skip_this_pdf = False\n",
    "\n",
    "        for page_i in target_pages:\n",
    "            try:\n",
    "                # 左：PDF 页面\n",
    "                page = doc.load_page(page_i)\n",
    "                arr = page_to_rgb_array(page, scale=render_scale)\n",
    "                left_pil = Image.fromarray(arr)\n",
    "                left_pil = resize_pil(left_pil, scale=display_scale_fixed)\n",
    "\n",
    "                # 右：该页的 has_issue 面板\n",
    "                panel_paths = panels_map.get(basename, {}).get(page_i, []) if pages_map else []\n",
    "                right_pil = make_right_column_from_paths(panel_paths)\n",
    "\n",
    "                composite = side_by_side(left_pil, right_pil, gap=16, max_w=1600)\n",
    "\n",
    "                # —— 清屏并先输出“文字横幅”，再输出图像 —— #\n",
    "                clear_output(wait=True)\n",
    "                display(Markdown(make_header_md(pdf_idx, len(pdfs), page_i, page_total, pdf_path, issue_total)))\n",
    "                display(Markdown(f\"**本页 has_issue panels数：{len(panel_paths)}**\"))\n",
    "                display(composite)\n",
    "\n",
    "                if SAVE_COMPOSITE:\n",
    "                    sub = os.path.join(preview_root, os.path.splitext(os.path.basename(pdf_path))[0])\n",
    "                    os.makedirs(sub, exist_ok=True)\n",
    "                    composite.save(os.path.join(sub, f\"p{page_i+1}.jpg\"), quality=90)\n",
    "\n",
    "            except Exception as e:\n",
    "                clear_output(wait=True)\n",
    "                display(Markdown(make_header_md(pdf_idx, len(pdfs), page_i, page_total, pdf_path, issue_total)))\n",
    "                display(Markdown(f\"渲染失败（已跳过此页）：`{e}`\"))\n",
    "                continue\n",
    "\n",
    "            # 交互\n",
    "            if not AUTO_NEXT:\n",
    "                try:\n",
    "                    cmd = input().strip().lower()\n",
    "                except EOFError:\n",
    "                    cmd = \"\"\n",
    "            else:\n",
    "                cmd = \"\"\n",
    "\n",
    "            if cmd == \"w\":\n",
    "                if pdf_path not in bad_seen:\n",
    "                    bad_seen.add(pdf_path)\n",
    "                    rec = {\n",
    "                        \"basename\": basename,\n",
    "                        \"pdf_path\": pdf_path,\n",
    "                        \"issue_panel_count\": issue_total\n",
    "                    }\n",
    "                    with open(bad_list_path, \"a\", encoding=\"utf-8\") as f:\n",
    "                        f.write(json.dumps(rec, ensure_ascii=False) + \"\\n\")\n",
    "                print(f\"❌ 已记录有误 PDF（已保存）：{pdf_path}\")\n",
    "                skip_this_pdf = True\n",
    "                break\n",
    "\n",
    "            elif cmd == \"e\":\n",
    "                key = (basename, page_i)\n",
    "                if key not in marked_pages_seen:\n",
    "                    marked_pages_seen.add(key)\n",
    "                    rec = {\n",
    "                        \"basename\": basename,\n",
    "                        \"pdf_path\": pdf_path,\n",
    "                        \"page_index_0\": page_i,\n",
    "                        \"page_index_1\": page_i + 1,\n",
    "                        \"issue_panel_count\": len(panel_paths)\n",
    "                    }\n",
    "                    with open(marked_pages_path, \"a\", encoding=\"utf-8\") as f:\n",
    "                        f.write(json.dumps(rec, ensure_ascii=False) + \"\\n\")\n",
    "                    print(f\"✅ 已记录页面（已保存）：{basename} 第 {page_i+1} 页（issue_panels={len(panel_paths)}）\")\n",
    "\n",
    "            elif cmd == \"q\":\n",
    "                doc.close()\n",
    "                print(\"提前退出。\")\n",
    "                print(f\"有误 PDF 记录文件: {bad_list_path}（{len(bad_seen)} 条）\")\n",
    "                print(f\"已标记页面记录文件: {marked_pages_path}（{len(marked_pages_seen)} 条）\")\n",
    "                return\n",
    "\n",
    "        doc.close()\n",
    "        if skip_this_pdf:\n",
    "            continue\n",
    "\n",
    "    print(\"完成。\")\n",
    "    print(f\"有误 PDF 记录文件: {bad_list_path}（{len(bad_seen)} 条）\")\n",
    "    print(f\"已标记页面记录文件: {marked_pages_path}（{len(marked_pages_seen)} 条）\")\n",
    "\n",
    "if __name__ == \"__main__\":\n",
    "    main()\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 2.删除"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "#!/usr/bin/env python3\n",
    "# -*- coding: utf-8 -*-\n",
    "\"\"\"\n",
    "清理脚本：根据 bad_aigc_*.jsonl 文件删除对应的文件夹和 forgery.json 中的记录\n",
    "\"\"\"\n",
    "\n",
    "import os\n",
    "import json\n",
    "import argparse\n",
    "from pathlib import Path\n",
    "\n",
    "def load_bad_papers(jsonl_path):\n",
    "    \"\"\"从 JSONL 文件中加载需要删除的 paper 信息\"\"\"\n",
    "    bad_papers = []\n",
    "    if not os.path.exists(jsonl_path):\n",
    "        print(f\"错误：找不到文件 {jsonl_path}\")\n",
    "        return bad_papers\n",
    "    \n",
    "    with open(jsonl_path, 'r', encoding='utf-8') as f:\n",
    "        for line_num, line in enumerate(f, 1):\n",
    "            line = line.strip()\n",
    "            if not line:\n",
    "                continue\n",
    "            try:\n",
    "                data = json.loads(line)\n",
    "                bad_papers.append(data)\n",
    "            except json.JSONDecodeError as e:\n",
    "                print(f\"警告：第 {line_num} 行 JSON 解析失败: {e}\")\n",
    "                continue\n",
    "    \n",
    "    return bad_papers\n",
    "\n",
    "def extract_paper_id_from_basename(basename):\n",
    "    \"\"\"从 basename 中提取 paper_id\"\"\"\n",
    "    # 例如：2010072788_FG_004.pdf -> 2010072788_FG_004\n",
    "    if basename.endswith('.pdf'):\n",
    "        return basename[:-4]\n",
    "    return basename\n",
    "\n",
    "def delete_paper_folder(pdf_path, dry_run=True):\n",
    "    \"\"\"删除 paper 文件夹\"\"\"\n",
    "    # 从 PDF 路径获取文件夹路径\n",
    "    folder_path = os.path.dirname(pdf_path)\n",
    "    \n",
    "    if not os.path.exists(folder_path):\n",
    "        print(f\"警告：文件夹不存在 {folder_path}\")\n",
    "        return False\n",
    "    \n",
    "    if dry_run:\n",
    "        print(f\"[DRY RUN] 将删除文件夹: {folder_path}\")\n",
    "        return True\n",
    "    else:\n",
    "        try:\n",
    "            import shutil\n",
    "            shutil.rmtree(folder_path)\n",
    "            print(f\"✅ 已删除文件夹: {folder_path}\")\n",
    "            return True\n",
    "        except Exception as e:\n",
    "            print(f\"❌ 删除文件夹失败 {folder_path}: {e}\")\n",
    "            return False\n",
    "\n",
    "def remove_paper_from_json(paper_id, json_path, dry_run=True):\n",
    "    \"\"\"从 forgery.json 中移除指定的 paper_id 记录\"\"\"\n",
    "    if not os.path.exists(json_path):\n",
    "        print(f\"错误：找不到 forgery.json 文件 {json_path}\")\n",
    "        return False\n",
    "    \n",
    "    # 读取 JSON 文件\n",
    "    try:\n",
    "        with open(json_path, 'r', encoding='utf-8') as f:\n",
    "            data = json.load(f)\n",
    "    except Exception as e:\n",
    "        print(f\"错误：读取 JSON 文件失败 {json_path}: {e}\")\n",
    "        return False\n",
    "    \n",
    "    papers = data.get('papers', [])\n",
    "    if not isinstance(papers, list):\n",
    "        print(f\"错误：JSON 文件中没有找到 papers 数组\")\n",
    "        return False\n",
    "    \n",
    "    # 查找并移除指定的 paper_id\n",
    "    original_count = len(papers)\n",
    "    papers = [p for p in papers if p.get('paper_id') != paper_id]\n",
    "    removed_count = original_count - len(papers)\n",
    "    \n",
    "    if removed_count == 0:\n",
    "        print(f\"警告：在 JSON 中未找到 paper_id: {paper_id}\")\n",
    "        return False\n",
    "    \n",
    "    if dry_run:\n",
    "        print(f\"[DRY RUN] 将从 forgery.json 中移除 paper_id: {paper_id}\")\n",
    "        return True\n",
    "    else:\n",
    "        # 写回 JSON 文件\n",
    "        try:\n",
    "            data['papers'] = papers\n",
    "            with open(json_path, 'w', encoding='utf-8') as f:\n",
    "                json.dump(data, f, ensure_ascii=False, indent=2)\n",
    "            print(f\"✅ 已从 forgery.json 中移除 paper_id: {paper_id}\")\n",
    "            return True\n",
    "        except Exception as e:\n",
    "            print(f\"❌ 写入 JSON 文件失败: {e}\")\n",
    "            return False\n",
    "\n",
    "def main():\n",
    "    parser = argparse.ArgumentParser(description='清理坏掉的 papers')\n",
    "    parser.add_argument('jsonl_path', help='bad_aigc_*.jsonl 文件路径')\n",
    "    parser.add_argument('--forgery-json', default='/home/zhangbo/workspace/aigc/genome/dataset/forgery/forgery.json',\n",
    "                       help='forgery.json 文件路径')\n",
    "    parser.add_argument('--dry-run', action='store_true', \n",
    "                       help='只显示将要执行的操作，不实际删除')\n",
    "    parser.add_argument('--confirm', action='store_true',\n",
    "                       help='跳过确认提示，直接执行删除操作')\n",
    "    \n",
    "    args = parser.parse_args()\n",
    "    \n",
    "    # 加载需要删除的 papers\n",
    "    bad_papers = load_bad_papers(args.jsonl_path)\n",
    "    if not bad_papers:\n",
    "        print(\"没有找到需要删除的 papers\")\n",
    "        return\n",
    "    \n",
    "    print(f\"找到 {len(bad_papers)} 个需要删除的 papers:\")\n",
    "    for paper in bad_papers:\n",
    "        paper_id = extract_paper_id_from_basename(paper['basename'])\n",
    "        print(f\"  - {paper_id} (issue_panels: {paper['issue_panel_count']})\")\n",
    "    \n",
    "    # 确认操作\n",
    "    if not args.dry_run and not args.confirm:\n",
    "        response = input(f\"\\n确认要删除这 {len(bad_papers)} 个 papers 吗？(y/N): \")\n",
    "        if response.lower() != 'y':\n",
    "            print(\"操作已取消\")\n",
    "            return\n",
    "    \n",
    "    # 执行删除操作\n",
    "    success_count = 0\n",
    "    failed_count = 0\n",
    "    \n",
    "    for paper in bad_papers:\n",
    "        paper_id = extract_paper_id_from_basename(paper['basename'])\n",
    "        pdf_path = paper['pdf_path']\n",
    "        \n",
    "        print(f\"\\n处理 paper: {paper_id}\")\n",
    "        \n",
    "        # 删除文件夹\n",
    "        folder_success = delete_paper_folder(pdf_path, dry_run=args.dry_run)\n",
    "        \n",
    "        # 从 JSON 中移除\n",
    "        json_success = remove_paper_from_json(paper_id, args.forgery_json, dry_run=args.dry_run)\n",
    "        \n",
    "        if folder_success and json_success:\n",
    "            success_count += 1\n",
    "        else:\n",
    "            failed_count += 1\n",
    "    \n",
    "    # 输出结果\n",
    "    print(f\"\\n操作完成:\")\n",
    "    print(f\"  成功: {success_count}\")\n",
    "    print(f\"  失败: {failed_count}\")\n",
    "    \n",
    "    if args.dry_run:\n",
    "        print(\"\\n这是预览模式，没有实际删除任何文件。\")\n",
    "        print(\"使用 --dry-run=false 来实际执行删除操作。\")\n",
    "\n",
    "if __name__ == \"__main__\":\n",
    "    main()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "genome",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.23"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
